$RCSfile: SymbolFileFormat.txt $ Description: Symbol file format used by Oberon-A Created by: fjc (Frank Copeland) $Revision: 1.5 $ $Author: fjc $ $Date: 1995/07/02 17:07:04 $ Copyright © 1994, Frank Copeland. This file is part of Oberon-A. See Oberon-A.doc for conditions of use and distribution. ________________________________________________________________________ INTRODUCTION This document describes the symbol file format used by Oberon-A. SYMBOL FILE FORMAT SymTag = 53594D09H; (* "SYM" + version # *) (* structure forms *) Undef * = 0H; Byte * = 1H; Bool * = 2H; Char * = 3H; SInt * = 4H; Int * = 5H; LInt * = 6H; Real * = 7H; LReal * = 8H; BSet * = 9H; WSet * = 0AH; Set * = 0BH; String * = 0CH; NilTyp * = 0DH; NoTyp * = 0EH; PtrTyp * = 0FH; CPtrTyp * = 10H; BPtrTyp * = 11H; Word * = 12H; Longword * = 13H; TypeTag * = 14H; (* terminal symbols for symbol file elements *) eUndef = 0H; eCon = 1H; eTypE = 2H; eTyp = 3H; eVar = 4H; eXProc = 5H; eLibCall = 6H; eM2Proc = 7H; eCProc = 8H; eAProc = 9H; ePointer = 0AH; eProcTyp = 0BH; eArray = 0CH; eDynArr = 0DH; eRecord = 0EH; eParList = 0FH; eValPar = 10H; eVarPar = 11H; eVarArg = 12H; eFldList = 13H; eFld = 14H; eHPtr = 15H; eHProc = 16H; eTProcE = 17H; eTProc = 18H; eFixup = 19H; eMod = 1AH; eExtLib = 1BH; eCallBack = 1CH; eCBackTyp = 1DH; SymbolFile = SymTag:4 modAnchor {element}. modAnchor = eMod key:4 name. element = eCon constant | (eTypE | eTyp) ref mno name | (eVar | eFld) ref offset visible name | (eValPar | eVarPar) ref offset name | eParList {element} ( (eXProc | eCallBack) ref | (eLibCall | eTProcE) ref ref offset | (eM2Proc | eCProc | eAProc) ref name | eLibCall2 ref offset offset ) name | ePointer ref mno sysflg dscadr | eParList {element} (eProcTyp | eCBackTyp) ref mno | eArray ref mno size bndadr nofel | eDynArr ref mno size lenoff | eFldList {element} eRecord ref mno size sysflg dscadr | eHPtr offset | eTProc ref offset | eFixup ref ref | eExtLib name | modAnchor. constant = (Byte | Bool | Char | SInt | SSet) val name | (Int | Set) val name | (LInt | Real | LReal | LSet) val name | String sadr len [char] name | Nil name. name = {char} 0X